package com.ujs.leetcode.Anagram;

/**
 * @author zhangshihao
 * @create 2023-10-14 20:09
 * 242. 有效的字母异位词
 * https://leetcode.cn/problems/valid-anagram/description/
 * 使用哈希表来做
 */
public class IsAnagram {
    public static void main(String[] args) {
        String s = "anagram";
        String t = "nagaram";
        boolean anagram = isAnagram(s, t);
        System.out.println(anagram);
    }

    public static boolean isAnagram(String s, String t) {
        // 因为都是小写字母，小写字母共26位，所以定义一个长度为26的数组存储每个字符出现的次数。
        // 数组的下表就代表了每个字母
        int[] record = new int[26];
        for (int i = 0; i < s.length(); i++) {
            record[s.charAt(i) - 'a']++;
        }
        for (int i = 0; i < t.length(); i++) {
            record[s.charAt(i) - 'a']--;
        }
        for (int j : record) {
            if (j != 0) {
                return false;
            }
        }
        return true;
    }
}
